package love.xiaohh.minio.utils.file;

import love.xiaohh.minio.utils.StringUtils;

/**
 * <p>
 * 文件相关的工具类
 * </p>
 *
 * @author XiaoHH
 * @version 1.0
 * @date 2021-11-21 星期日 10:02:17
 * @file FileUtils.java
 */
public class FileUtils {

    /**
     * 不允许被实例化
     */
    private FileUtils() {
    }

    /**
     * 返回文件的扩展名
     *
     * @param filename 文件的名称
     * @return 扩展名
     */
    public static String getExtension(String filename) {
        if (StringUtils.isNotEmpty(filename)) {
            int index = filename.lastIndexOf('.');
            if (index > 0)
                return filename.substring(index);
            else return StringUtils.NULL_STR;
        } else return null;
    }

    /**
     * 根据文件类型获取文件扩展名，如 image/png 则返回 .png
     *
     * @param contentType 文件类型
     * @return 文件扩展名
     */
    public static String getExtensionByContentType(String contentType) {
        if (StringUtils.isNotEmpty(contentType)) {
            int index = contentType.indexOf("/");
            if (index > 0) return "." + contentType.substring(index + 1);
            else return StringUtils.NULL_STR;
        } else return null;
    }

    /**
     * 判断一个内容类型是不是图片类型
     *
     * @param contentType 内容类型
     * @return 判断结果
     */
    public static boolean isImage(String contentType) {
        if (StringUtils.isEmpty(contentType)) return false;
        return contentType.matches("^image/[a-zA-Z]*$");
    }
}
